home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / gcc / ixemuldc.lha / ixemul / NEWS < prev    next >
Text File  |  1996-03-26  |  15KB  |  336 lines

  1. ============
  2. VERSION 43.0
  3. ============
  4.  
  5. Integrated Jeff Shepherd's networking code. If ixnet.library is installed,
  6. then ixemul.library will use the networking functions from the
  7. ixnet.library, instead of the default dummy implementation. Ixnet.library
  8. works with AS225 and with AmiTCP. It supports both clients and daemons.
  9. A program that uses networking functions is completely shielded from the
  10. AS225 and AmiTCP differences by ixnet.library. That library will take care
  11. of all the details for you. That means that there is no longer any need to
  12. provide two different binaries, one for AS225 and one for AmiTCP.
  13. Furthermore, it is relatively easy to add support for other network
  14. packages. Thanks, Jeff!
  15.  
  16. Added stackchecking and extension code, thanks to Matthias Fleischer.
  17.  
  18. Finalized GDB support.
  19.  
  20. ============
  21. VERSION 42.1
  22. ============
  23.  
  24. Fixed bugs when running non-ixemul programs from tools like pdksh or make.
  25. You could get Enforcer hits and the Ctrl-C support also crashed the Amiga.
  26.  
  27. Use the NetBSD code for the system() function instead of using the Amiga
  28. kernel function SystemTagList. This was the cause of several
  29. incompatibilities when porting Unix programs.
  30.  
  31. Improved termios support (added OPORT and ONLCR flags and the INLCR flag).
  32.  
  33. Fixed ptrace handling. Almost none of Leonard's code has survived, I used a
  34. completely different method.
  35.  
  36. Fixed a problem where the name of the current directory, as is visible
  37. by the shell, wasn't changed when a program terminated and ixemul reset the
  38. current directory to its original place.
  39.  
  40. Improved performance somewhat by no longer going through address 4 to get
  41. to the ExecBase structure. Instead, it's copied once to the SysBase
  42. variable, and thereafter only that variable is used. The Enforcer manual
  43. warned against accessing address 4 too often, and ixemul.library did that
  44. a lot.
  45.  
  46. Also improved performance by fixing a busy wait. At one point in the
  47. ixemul, the program cannot continue until a context switch has taken place.
  48. So ixemul waits until the dispatch count of ExecBase has changed,
  49. indicating that a context switch has taken place. By installing a small,
  50. high priority (9) task with body "for (;;) Wait(1 << 31);" and signalling
  51. that task whenever a context switch is needed, I was able to circumvent the
  52. busy wait loop. Because of the high priority of the Task, a context switch
  53. would take place immediately. The task itself goes back to sleep at once,
  54. so there is no time lost there.
  55.  
  56. ============
  57. VERSION 42.0
  58. ============
  59.  
  60. Installed patch in arith.c to work around bug in IEEEDPCmp.  If the first
  61. 32 bits of both doubles are equal, and both doubles are negative, then
  62. the result can no longer be trusted.  Discovered by Bart Van Assche.
  63.  
  64. Ixtrace has been updated to recognize all 42.0 syscalls, thanks to David
  65. Zaroski.
  66.  
  67. Ctrl-C handling worked with KingCON, but not with the standard AmigaDOS
  68. CON-handler (since I use KingCON I never noticed this until it was pointed
  69. out to me by Fred Fish :-). This has now been fixed. See the comments in
  70. library/__read.c for more information.
  71.  
  72. Added the uname() function, written by Lars Hecking.
  73.  
  74. The termios code now properly recognizes the ICRNL input flag for '\r' to
  75. '\n' translation.
  76.  
  77. Fixed a bug in the fcntl() function (actually, in the fcntl.h and
  78. sys/fcntl.h headers).
  79.  
  80. Moved several static variables to user.h, so they are now process-specific.
  81.  
  82. Added profiling support. It was always there, but it was never actually
  83. used.
  84.  
  85. The write() function writes its buffer line-by-line instead of in one big
  86. chunk if the filehandle is the handle of an interactive stream (for
  87. example, a console window). This allows the user to interrupt the output by
  88. pressing a key and it also allows the use of Ctrl-C to break the program.
  89. In previous versions you were unable to stop the output if you forgot to
  90. redirect it to a file. E.g., 'cat /libs/ixemul.library' would essentially
  91. take over the computer.
  92.  
  93. Changed default stack size handling when a new process is launched. It is
  94. either the value of the environment variable IXSTACK, or it inherits the
  95. size from its parent, but if that size is less than 16384, it uses a stack
  96. of 16384 bytes instead.
  97.  
  98. Replaced ixconfig by ixprefs (written by Kriton Kyrimis).
  99.  
  100. Integrated the partial ptrace support from Leonard Norrgard.
  101.  
  102. Removed the gnulib, gnulib-68881 and gnulib-soft-float directories.
  103.  
  104. Compiled with -Wall and fixed (nearly) all warnings. Some warnings are
  105. inevitable and cannot be avoided. -Wall already caught one illegal memory
  106. access bug in __Close()!
  107.  
  108. Added functions to set and get ixemulbase-private information. This will
  109. break older ixconfig's but is much cleaner. Nearly all of the ixemulbase
  110. structure is now off-limits and liable to change without notice! You are
  111. warned! In fact, the structure has been changed already. The library will
  112. complain if a program called 'ixconfig' tries to use it to prevent the user
  113. from using an old ixconfig with the new library.
  114.  
  115. Removed several arithmetic functions dealing with 'long long' types. They
  116. didn't belong in the library, link with libgcc.a instead. Also removed some
  117. arithmetic functions that are never called because they are compiled
  118. directly in 68000 assembly. Don't know why they were ever added.
  119.  
  120. Fixed gen_glue.c so that it no longer generates glue for obsolete functions.
  121.  
  122. Removed ssystem(). ssystem() was the precursor of vfork/execve, and is no
  123. longer needed. NOTE: it is still used in gcc. But this fails spectacularly
  124. once you use Ctrl-C! Delete gcc and replace it by gccv, this one uses
  125. vfork/execve as it should and works perfectly.
  126.  
  127. ixemul.library now uses the new-style inlines.
  128.  
  129. qsort() is now re-entrant and no longer uses the horrible Semaphore hack.
  130.  
  131. Moved general/fts.c to the static library. These directory-tree traversal
  132. functions are rarely, if ever used, so they belong in libc.a and not in a
  133. shared library.
  134.  
  135. Reorganized the Makefiles. The makefiles now use several GNU make-only
  136. features to make them smaller and easier to maintain.  'make clean' and
  137. 'make clobber' now work correctly.  It is also no longer nessecary to add
  138. the -srcdir option to 'sh configure' in order to create valid Makefiles.
  139.  
  140. The top level Makefile contains the line 'export CATENATE = 1'. If this
  141. line is present, the compilation speed is greatly improved by catenating
  142. several small C-sources together into one bigger C-source, and then the
  143. bigger one is compiled. By commenting this line each separate source is 
  144. compiled. Note that besides improving compilation speed, the library also
  145. gets smaller as the compiler can now determine whether a call can be made
  146. relative or should remain absolute.
  147.  
  148. Fixed a symlink-bug (ln -s /ram/t created a symlink to /am/t, removing the
  149. first character of the volumename).
  150.  
  151. Moved ixtrace to the new utils directory, together with the small ixrun
  152. utility.  ixrun can be used to run Amiga batch files from /bin/sh (just put
  153. ';!ixrun' at the second line (!) of the batch file).  Also added manual
  154. page for ixrun.
  155.  
  156. Cleaned up the static directory:  removed xmalloc.c and alloca.c as they do
  157. not belong in the standard C library.  Also replaced the ctime.c source by
  158. the version from elsie.nci.nih.gov, which is the official version used by
  159. NetBSD and Linux, among others.  Finally, errlst.c and siglist.c now just
  160. include their counterparts in the general directory.
  161.  
  162. The version information is placed in the version.in file in the
  163. top-level directory. The version.c and version.h sources are created from
  164. this file.
  165.  
  166. The print_base_size.c and print_user.c sources have been replaced by
  167. create_header.c, which creates a header containing a few defines that are
  168. used by start.s and trap.s. These used to be hard-coded, but now they are
  169. generated, preventing future mistakes.
  170.  
  171. Added the raise function. For some reason, raise.c was never compiled into
  172. the library. It is now.
  173.  
  174. Removed ALL sources that were not needed for compilation.
  175.  
  176. Added timezone handling. The timezone databases from elsie.nci.nih.gov are
  177. used and installed in etc:zoneinfo. The new ixtimezone utility should be
  178. added to the startup-sequence. This utility determines the correct offset
  179. for Greenwich Mean Time. Read the manual page (Yes! Documentation at last!)
  180. for more information.
  181.  
  182. Merged the ixpipe-handler into the ixemul-distribution. It has been placed
  183. in the utils-directory.
  184.  
  185. Added hack to allow ixemul to run AmigaDOS scripts without breaking them
  186. when run from the AmigaDOS shell. The problem is that the ".KEY" string
  187. must be at the first line of the script, while ixemul also looks for "#!"
  188. and ";!" in the first line. If a file starts with ".KEY", ixemul will now
  189. skip the first line, before checking for "#!" and ";!".
  190.  
  191. ============
  192. VERSION 41.4
  193. ============
  194.  
  195. Integrated patches from Hans Verkuil that fix CTRL-C handling, fix another
  196. signal bug, fix problem with "rm -f", prepare for proper timezone handling,
  197. and remove '@' hack in argument parsing.
  198.  
  199. Applied patch from Kamil Iskra to avoid incompatibility between ixemul
  200. and the popular KingCON 1.3.  This is KingCON's fault because it makes
  201. invalid assumptions about the nature of reply port contained in "dp_Port"
  202. of packets sent to it.  Also applied patch (duplicated in Hans' patches)
  203. to crt0.c that fixes bug where the revision requester was not working
  204. properly if the current revision is 0.
  205.  
  206. Applied patch from Rask Lambertsen (duplicated in Hans' patches) that makes
  207. ixemul.library open "CONSOLE:" instead of "*".
  208.  
  209. Added implementation from Kriton Kyrimis for srand48, seed48, lcong48,
  210. lrand48, nrand48, mrand48, jrand48, drand48, and erand48.
  211.  
  212. Added "#include <sys/types.h>" to <dirent.h> to be more compatible
  213. with most current systems that do this inclusion for you.  This change
  214. should be backwards compatible with code that does the inclusion
  215. explicitly.  Suggested by Lars Hecking.
  216.  
  217. Changed prototype in <unistd.h> for getpgrp() to take a pid_t argument,
  218. which matches the implementation in library/getcrap.c.  Suggested by
  219. Lars Hecking.
  220.  
  221. Made change to <math-68881.h> in pow() so that if x<0 the code does
  222. log(-x) rather than log(x).  Suggested by Thomas Radtke and implemented
  223. by Lars Hecking.
  224.  
  225. Disable definitions of F_GETLK, F_SETLK, F_SETLKW, F_RDLCK, F_UNLCK, and
  226. F_WRLCK in <fcntl.h> since they are unimplemented and thus might have misled
  227. autoconfiguration schemes into thinking they were available.  Also fix
  228. ixtrace.c so it will still compile without these defined.  Suggested by
  229. Robert Ramiega.
  230.  
  231. Integrated patch from Joop van de Wege (duplicated in Hans' patches) for
  232. setting up fpu on 68060.
  233.  
  234. ============
  235. VERSION 41.3
  236. ============
  237.  
  238. Updated DBL_MIN and DBL_MAX in float.h to include one additional digit
  239. of precision.  Enclose negative constants in parens to avoid unexpected
  240. conversion to subtraction via cpp macros.
  241.  
  242. Applied patch from Hans Verkuil to fix serious bug in signal handling,
  243. to reset all signal handlers after an execve, except for those which are
  244. being ignored (SIG_IGN).
  245.  
  246. Applied patch from Joop van de Wege to trap.s to set 68881 rounding mode
  247. back to truncation instead of "round to nearest", as required by the
  248. ANSI C standard which specifies truncation.
  249.  
  250. Integrated ixtrace into source tree and arranged for it to be built and
  251. installed.
  252.  
  253. ============
  254. VERSION 41.2
  255. ============
  256.  
  257. Added "#include <sys/types.h>" to <sys/stat.h> to be more compatible
  258. with most current systems that do this inclusion for you.  This change
  259. should be backwards compatible with code that does the inclusion
  260. explicitly.
  261.  
  262. Changed version string to be style guide compliant.  Also arranged that
  263. version.o gets linked in, since it has the $VER: string and is otherwise
  264. unreferenced by any ixemul.library code.
  265.  
  266. Merged patches from Hans Verkuil to fix execve environment passing,
  267. always open the console for stderr if no other file handle is provided,
  268. move AmigaDOS style filename matching into glob(), and fix a small problem
  269. with "open(NULL,...) that caused enforcer hits.
  270.  
  271. ============
  272. VERSION 41.1
  273. ============
  274.  
  275. A 68040 version of the library with soft floating point is now built,
  276. since there are apparently systems that use the versions of the 68040
  277. without FPUs.
  278.  
  279. Fixed crt0 files to use "jra _ENTRY" as first instruction rather than
  280. "jmp pc@(_ENTRY)" which was getting assembled by gas 2.5.2 as a 68020+
  281. instruction.  Note "jmp pc@(_ENTRY:W)" seems to generate the 68000
  282. instruction but a bad jump offset.  Added corresponding change to
  283. execve.c to recognize ixemul using executables with this change.
  284.  
  285. Fixed cpu.h, machdep.c, trap.s to avoid pc relative assembly instruction
  286. that was getting compiled as 68020+ instruction and causing crashes on
  287. 68000 machines.
  288.  
  289. Fixed numerous files that did "#include" of "DEFS.H" rather than "defs.h".
  290. This is an innocuous bug on the Amiga, which is case independent, but
  291. it kills cross compilations.
  292.  
  293. ============
  294. VERSION 41.0
  295. ============
  296.  
  297. No significant changes since the 40.6 beta release other than the
  298. mechanism (and macros) for building debug versions has been cleaned
  299. up and the version number has been bumped to 41.0.
  300.  
  301. Did include the cat'able man pages back in the source tree, but no
  302. work has been done yet to track down the sources for the man pages
  303. and arrange for them to be properly integrated into the tree and
  304. have the cat'able versions generated from those sources.
  305.  
  306. ============
  307. VERSION 40.6
  308. ============
  309.  
  310. Many bugs have been fixed since the 40.4 release, including a serious
  311. one that was causing memory corruption and many enforcer or mungwall
  312. hits.
  313.  
  314. Network support has been reintegrated into the library, however it is
  315. still mostly untested.  In particular, many functions are only
  316. available for static linking from the libnet.a library.  By the next
  317. release, it is expected that libnet.a will be incorporated in libc.a.
  318.  
  319. Work is underway to merge the best features from at least two
  320. different strains of the ixemul library.  Many more changes are
  321. expected by the 41.0 release.
  322.  
  323. An environment variable called "IXSTACK" is now used to control the
  324. stack size of programs started by system().  If the current stack is
  325. smaller than the value in IXSTACK, the stack is raised to the value
  326. specified in IXSTACK.  So IXSTACK is a minimum value.
  327.  
  328. Automatic stack checking, with a requestor if the stack overflows, is
  329. available for executables compiled with a version of gcc that supports
  330. the -mstackcheck option.  This also requires linking with new crt0 and
  331. libc.a.
  332.  
  333. Automatic stack extension as necessary is available for executables
  334. compiled with a version of gcc that supports the -mstackextend option.
  335. This also requires linking with new crt0 and libc.a.
  336.